// \src\utils\request.js

import axios from "axios";
import {getToken} from "./auth";
import {message} from "antd";

const request = axios.create({
    baseURL: 'http://localhost:3009',
    timeout: 5000
})

// 请求拦截器
request.interceptors.request.use( (config)=>{
        console.log('发送请求:', config.method, config.url, config.data);
        // 在发送请求之前做些什么
        const token = getToken();
        if(token){
            config.headers.Authorization = `Bearer ${token}`;
        }
        return config;
    },
    (error)=>{
        // 对请求错误做点什么
        return Promise.reject(error)
    }

);
// 响应拦截器
request.interceptors.response.use( (response)=>{
    console.log('收到响应:', response.status, response.data);
    // 对响应数据做点什么

    if(response.status === 200){
        return response.data
    }else{
        message.error('请求失败');
        return Promise.reject(new Error('请求失败'))
    }



    }, (error)=>{
    // 添加响应错误处理
    console.error('响应错误:', error);
    if (error.response) {
        console.error('错误响应:', error.response);
    }
    message.error('网络错误，请检查后端服务');
    return Promise.reject(error);
    }
)
// 常用的请求方法
/**
 *
 * @param url       请求地址
 * @param params    url参数
 * @returns {Promise<axios.AxiosResponse<any>>}
 */
export const get = (url, params) => {
    return request.get(url, {params})
}

export const post = (url, data) => {
    return request.post(url, data)
}

export const put=(url, data)=>{
    return request.put(url, data)
}

export const del=(url, params)=>{
    return request.delete(url, {params})
}






export default request;
